Retail software applications are typically developed or built to run across a range of different types of devices. For example, an application may be configured to support most popular types of devices to broaden potential customer bases. Optionally, an application may be designed to run on the latest type of devices to take advantage of newly available system features, such as graphics capabilities but such an application may not run or run properly on older devices which do not include such newly available features.
Further, more than one versions of a single application component may be packaged together to allow one installable application to support multiple types of devices. As an example, multiple image files may be provided to support a same user interface element rendered for running the application in target devices. These image files may differ in textures, compression formats, resolutions or other applicable graphic features related to capabilities of the target devices. Each image file may be applicable in different types of the devices.
As a result, an application package may include components applicable for running an application in certain types of devices but not in other types of devices. A developer may need to pick which types of devices to support for packaging related components into an application. Furthermore, the size of an application package to be installed in a target device may increase as the number or range of types of target devices increases.
Therefore, traditional mechanisms for application packaging and installation may be inefficient, wasteful and not developer friendly.